import java.util.ArrayList;
import java.lang.String;

public class capicuas {

	public static void main(String [] args) {
		ArrayList<Integer> capicuas = new ArrayList<Integer>();
		for (int i=0; i<=99999; i++) {
			String numero = String.valueOf(i); // la cadena en un principio es de 6 caracteres en total
			char [] num = {'0','0','0','0','0'}; // inicializo con ceros no significativos				
		    switch (numero.length()) {
				case 1 : { num[4] = numero.charAt(0); break;}
				case 2 : { num[4] = numero.charAt(1); num[3] = numero.charAt(0); break; }
				case 3 : { num[4] = numero.charAt(2); num[3] = numero.charAt(1); num[2] = numero.charAt(0); break; }
				case 4 : { num[4] = numero.charAt(3); num[3] = numero.charAt(2); num[2] = numero.charAt(1); num[1] = numero.charAt(0); break; }	
				case 5 : { num = numero.toCharArray(); break; }			
			}
			boolean capicua = ((num[0]==num[4])&&(num[1]==num[3]));
			if (capicua)
				capicuas.add(i);
		} // end for
		int minDist = 100000; // 100000 es un valor bandera para la menor distancia
		int menor = 0; // tengo que incializar si o si las variables menor y mayor
		int mayor = 0;		
		for (int i=0; i<(capicuas.size()-1); i++) {
			int dist = capicuas.get(i+1)-capicuas.get(i); 			
			if (dist<minDist) {
				menor = capicuas.get(i);
				mayor = capicuas.get(i+1);
				minDist = dist;
			}		
		}
		System.out.println("La menor distancia es de " + minDist + " y se da entre los numeros " + menor + " y " + mayor);		
	}
}

